Inverse dynamics are used to compute the external forces that would cause a multibody system to follow a given movement trajectory. This computation is useful for data analysis where the trajectory is measured, as well as for control synthesis where the trajectory is prescribed. However modern methods for inverse dynamics are incapable of handling contact phenomena. Indeed such phenomena are generally non-invertible. For example, imagine pushing against a table while your movements are being recorded by a motion capture device. The goal of inverse dynamics in this case would be to reconstruct your muscle forces from the motion data. However the data do not contain sufficient information to reconstruct these forces, because any vertical force was counteracted by the table. The apparent impossibility of this computation is likely the reason why inverse methods for contact dynamics are lacking.
Modeling and simulation of contact phenomena is essential in a number of fields including robotics, mechanics, and graphics. Earlier approaches were based on spring-damper models which often lacked stability and accuracy even after considerable manual tuning. More recently the physics of contact were cast as a liner complementarity problem.
We overcome this conceptual problem by noting that rigid-body dynamics are only an approximation to the laws of physics, and this approximation is only accurate in the absence of contacts. When two bodies collide they no longer behave as rigid bodies, but instead undergo local deformations. Such deformations can in principle be captured by more complex mathematical models. However the necessary computations are prohibitively expensive and cannot be implemented in real-time simulation and control scenarios, and furthermore these more complex models involve large numbers of parameters which are hard to estimate. Thus the standard practice is to rely on rigid-body approximations, and formulate contact dynamics that mimic the underlying physical phenomena as closely as possible on a macroscopic level. The most popular such approximation is inelastic contact with Coulomb friction. This approximation however happens to be non-invertible.
Our approach is to define somewhat different approximations that have comparable accuracy but are invertible. Intuitively, our approximations allow small deformations at the contact points, so that pushing harder against the table in the above example results in some penetration that is visible in the motion capture data—and so the force can be recovered from the data. Unlike the older spring-damper models of contact (which also allow deformations and are trivially invertible), our methods belong to the class of modern time-stepping schemes that solve directly for the velocity at the next time step (see Stewart and Trinkle 1996). This approach has proven to be superior because it avoids the instabilities associated with spring-dampers. Indeed all modern software for multibody forward dynamics rely on time-stepping schemes.